﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;

namespace MegavaniaX.InputProcessor
{
    /// <summary>
    /// Provides an interface for all input processors.
    /// </summary>
    public interface IInputProcessor
    {
        /// <summary>
        /// The old keyboard state.
        /// </summary>
        KeyboardState OldKeyState { get; }

        /// <summary>
        /// The old mouse state.
        /// </summary>
        MouseState OldMouseState { get; }

        /// <summary>
        /// The main input processing function
        /// </summary>
        /// <param name="state">New keyboard state.</param>
        void ProcessInput(KeyboardState keyState, MouseState mouseState, TimeSpan elapsedTime);
    }
}
